package com.smile.model.response;

import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
@ToString
public class GetAirportInfoResponseDTO implements Serializable {

    private static final Long serialVersionUID = 1L;
    /**
     * 主键id
     */
    private Long id;

    private Integer organizationId;

    /**
     * 机场名称
     */
    private String airportName;

    /**
     * 经度
     */
    private BigDecimal longitude;

    /**
     * 纬度
     */
    private BigDecimal latitude;



    /**
     * 机场编号
     */
    private String gatewaySn;


    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime modifyTime;

    /**
     * 用户id
     */
    private Integer userId;

    /**
     * 风速
     */
    private BigDecimal windSpeed;

    /**
     * 降雨量
     */
    private BigDecimal rainfall;

    /**
     * home点有效性
     */
    private Integer homePositionIsValid;

    /**
     * 机场朝向角
     */
    private BigDecimal heading;

    /**
     * 网络RTK挂载点信息
     */
    private String mountPoint;

    /**
     * 网络端口
     */
    private String port;

    /**
     * 网络host
     */
    private String host;

    /**
     * 设备类型	{"1":"机场"}
     */
    private String rtcmDeviceType;

    /**
     * 标定类型	{"0":"未标定","1":"自收敛标定","2":"手动标定","3":"网络RTK标定"}
     */
    private String sourceType;

    /**
     * 加密编码 数组转字符串
     */
    private String secretCode;

    /**
     * 飞行器对频信息包含sdr_id和sn
     */
    private String centerNode;


    /**
     * 机场或遥控器对频信息 包含多组信息 control_source_index ，sdr_id，valid，sn
     */
    private String leafNodes;

    /**
     * 机场空调状态
     * {"0":"空闲模式(无制冷、制热、除湿等)","1":"制冷模式","2":"制热模式","3":"除湿模式","4":"制冷退出模式","5":"制热退出模式","6":"除湿退出模式","7":"制冷准备模式","8":"制热准备模式","9":"除湿准备模式"10":"风冷准备中"11":"风冷中"12":"风冷退出中"13":"除雾准备中"14":"除雾中"15":"除雾退出中"}
     */
    private String airConditionerState;


    /**
     * 空调剩余等待可切换时间
     */
    private String switchTime;

    /**
     * 空中回传	{"0":"关闭","1":"开启"}
     */
    private String airTransferEnable;

    /**
     * 机场静音模式"0":"非静音模式","1":"静音模式"}
     */
    private String silentMode;

    /**
     * 用户体验改善计划{"0":"初始状态","1":"拒绝加入用户体验改善计划","2":"同意加入用户体验改善计划"}
     */
    private String userExperienceImprovement;

    /**
     * 保养状态	{"0":"无需保养","1":"待保养","2":"正在保养"}
     */
    private String maintenanceState;


    /**
     * 电池保养剩余时间
     */
    private String maintenanceTimeLeft;

    /**
     * 电池加热保温状态	{"0":"电池未开启加热或保温","1":"电池在加热中","2":"电池在保温中"}
     */
    private String heatState;

    /**
     * 电池详细信息array 包含 capacity_percent index voltage temperature
     */
    private String batteries;


    /**
     * 搜星状态  包含多个数据结构
     */
    private String positionState;

    /**
     * 紧急停止按钮状态{"0":"关闭","1":"开启"}
     */
    private String emergencyStopState;

    /**
     * 电量百分比
     */
    private String capacityPercent;


    /**
     * 充电状态	{"0":"空闲","1":"充电中"}
     */
    private String state;

    /**
     * 机场备用电池信息包含 switch voltage temperature
     */
    private String backupBattery;


    /**
     * 机场声光报警状态	{"0":"关闭","1":"开启"}
     */
    private String alarmState;

    /**
     * 电池运行模式"1":"计划模式","2":"待命模式"}
     */
    private String batteryStoreMode;

    /**
     * 机场激活时间(unix 时间戳)
     */

    private Integer activationTime;

    /**
     * 椭球高度
     */
    private BigDecimal height;


    /**
     * 备降点 包含 longitude latitude safe_land_height is_configured height
     */
    private String alternateLandPoint;


    /**
     * 固件一致性
     */
    private Integer compatibleStatus;


    /**
     * 机场累计运行时长
     */
    private Integer accTime;

    /**
     * 首次上电时间
     */
    private Integer firstPowerOn;

    /**
     * 存储容量	包含 total used
     */
    private String  storage;

    /**
     * 工作电流	毫安 / mA
     */
    private BigDecimal  workingCurrent;


    /**
     * 工作电压	毫伏 / mV
     */
    private Integer  workingVoltage;


    /**
     * 舱内湿度	 / %RH
     */
    private Integer  humidity;

    /**
     *   舱内温度	摄氏度 / °
     */
    private BigDecimal  temperature;


    /**
     *   环境温度	摄氏度 / °
     */

    private BigDecimal  environmentTemperature;


    /**
     *   机场累计作业次数 °
     */
    private Integer  jobNumber;


    /**
     *  飞行器是否在舱{"0":"舱外","1":"舱内"}
     */
    private Integer  droneInDock;

    /**
     *  网络状态  type quality rate
     */
    private String  networkState;


    /**
     *  补光灯状态{"0":"关闭","1":"打开"}
     */
    private Integer  supplementLightState;


    /**
     *  子设备状态 device_sn device_model_key device_online_status device_paired
     */
    private String  subDevice;


    /**
     *  机场任务状态
     *  {"0":"作业准备中","1":"飞行作业中","2":"作业后状态恢复","3":"自定义飞行区更新中",
     *  "4":"地形障碍物更新中","5":"任务空闲","255":"飞行器异常","256":"未知状态"}
     */
    private Integer  flighttaskStepCode;

    /**
     *  机场状态
     */
    private Integer  modeCode;

    /**
     *  固件升级状态{"0":"未升级","1":"升级中"}
     */
    private Integer  firmwareUpgradeStatus;


    /**
     *  固件版本
     */
    private String  firmwareVersion;

}
